package com.forekonw.demo4;

import java.util.Scanner;

public class BankSystem {
    /**
     * 显示欢迎菜单
     */
    public static void welcome() {
        System.out.println("----------------------------------");
        System.out.println("******        欢迎登录       ******");
        System.out.println("******      中国人民银行     ******");
        System.out.println("*****         版本1.0         *****");
        System.out.println("----------------------------------");
    }
    /**
     * 登录
     *
     * @param user String
     * @param pwd  String
     * @return boolean
     */
    public static boolean login(String user, String pwd) {
        //账户密码只有三次机会，否则吞卡。
        // (循环)选择合适的循环
        //输入用户名密码
        //需要判断从控制台接受到的用户名与密码是否与参数是否匹配
        //如果相同，那么登录成功，返回结果，方法结束。
        //如果密码错误，只有三次机会，三次都错，退出系统（System.exit(0)）
        String name = "tony";
        String key = "123456";
        if (user.equals(name) && pwd.equals(key)) {
            System.out.println("登陆成功");
            return true;
        } else {
            for (int i = 3; i <= 0; i--) {
                    System.out.println("账户名或密码错误,你还有" + i + "次机会");
                    if (i==0){
                        System.out.println("您以输入三次错误的账号和密码，卡被吞了哈哈哈，快给我打电话询问解决办法");
                        System.exit(0);
                }
            }
            return false;
        }
    }
    /**
     * 是否继续操作
     *
     */
    public static boolean decide(String ch){
        //创建一个Scanner
        //询问用户是否继续（y/n）
        //接收用户的输入
        //根据用户的输入进行判断
        //y继续   n退出系统  System.exit(0)  如果不是y也不是n，需要用户重新输入
        Scanner input = new Scanner(System.in);
        String y = "y";
        String n = "n";
        if (ch.equals(y)){
            return true;
        }else if (ch.equals(n)){
            return false;
        }else {
            System.out.println("请按照提示输入,您输入的不正确，请重新输入：");
            return false;
        }
    }
    /**
     * 查询余额
     */
    public static double checkmoney(double money){
        //直接输出余额
        return money;
    }
    /**
     * 存款
     */
    public static double setmoney(double money){
        //使用Scanner接收用户的输入
        //判断是否满足条件（1.不能大于一万  2.不能为负数  3.必须是一百的整数倍）多选一
//        double sum =0.0;
//        double yue = 10000;
        if (money>10000){
            //提示
            System.out.println("存款最大金额不能超过10000");
            return 0;
        }else if (money<0){
            System.out.println("存款金额不能为负数");
            return 0;
        }else if (money%100!=0){
            System.out.println("存款金额必须为100的整数倍");
            return 0;
        }else {
            //求和 =

            System.out.println("存款成功，当前余额为" + money);
            return money;
            //在main中输出sum
        }
    }
    /**
     * 取款
     */
    public static double getmoney(double money){
        //使用Scanner接收用户的输入
        //判断是否满足条件(1.2.3.)
        double yue = 10000;
        if (money > yue ){
            //余额不足
            System.out.println("您的余额不足，无法操作");
            return 0;
        }else if (money > 3000){
            //不能取超过3000
            System.out.println("您单次操作的金额不能超过3000元");
            return 0;
        }else if (money < 0){
            //不能为负数
            System.out.println("您输入的金额不能为负数");
            return 0;
        }else if (money%100!=0){
            //必须为100的整数倍
            System.out.println("您输入的金额必须为100的整数倍");
            return 0;
        }else {
            money -= money;
            System.out.println("取款成功，当前余额为" + money);
            return money;
        }
    }
    /**
     * 修改密码
     * @param pwd  密码
     * @return
     */
    public static String changepwd(String pwd){
        //输入旧密码
        //判断旧密码与输入的是否相同
        //输入新密码与确认新密码，看是否相同，如果相同返回新密码，否则返回旧密码
        Scanner input = new Scanner(System.in);
        String mima = "123456";
        if (mima.equals(pwd)){
            System.out.println("请输入新密码:");
            String xinmima = input.next();
            System.out.println("请再次输入新密码:");
            String xinmima2 =input.next();
            if (xinmima.equals(xinmima2)){
                System.out.println("密码修改成功");
                System.out.println("当前密码为：" + xinmima);
                return xinmima;
            }else {
                System.out.println("您两次输入的密码不一致，请重新输入:");
                return mima;
            }
        }else {
            System.out.println("您输入的旧密码不正确，请重新输入");
            return mima;
        }
    }
    /**
     * 主方法
     * @param args
     */
    public static void main(String[] args) {
        //账号 密码 余额
        // 初始化用户信息
        String zhanghao = "tony";
        String mima = "123456";
        double yue = 10000;
        //1.调用welcome方法来显示欢迎界面
        welcome();
        //2.调用login登录
        Scanner input = new Scanner(System.in);
        System.out.println("请输入账号：");
        String a =input.next();
        System.out.println("请输入密码：");
        String b =input.next();
        login(a,b);
        //3.死循环while（登录结果）
        while (true){
            System.out.println("是否继续操作(y/n)");
            String q = input.next();
            boolean isRight = decide(q);
            if (isRight){
                System.out.println("请选择您要办理的业务");
                System.out.println("1.余额查询  2.存款  3.取款  4.修改密码  5.退出");
                int w = input.nextInt();
                switch(w){
                    case 1:
                        double yu = checkmoney(yue);
                        System.out.println(yu);
                        break;
                    case 2:
                        System.out.println("请输入存款金额：");
                        double mon = input.nextDouble();
                        double m = setmoney(mon);

                        break;
                    case 3:
                        System.out.println("请输入取款金额：");
                        double mo = input.nextDouble();
                        double qu = getmoney(mo);
                        double mou = yue - qu;
                        System.out.println(mou);
                        break;
                    case 4:
                        System.out.println("请输入旧密码：");
                        String mim = input.next();
                        String p = changepwd(mim);
//                        System.out.println("当前密码为" + p);
                        break;
                    case 5:
                        System.exit(0);
                        break;
            }
            }
        }
        //true一直循环{
        //     根据用户所选的菜单执行  switch   1.2.3.4.5.
        //    switch（）{
        //       case1：
        //       调用查询余额的方法checkmoney（）
        //       调用decide（）方法询问用户是否继续
        //       case2：
        //       case3：
        //       case4：
        //       case5：
        //    }
        // }
    }
}
